home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / make / icmake-6.000 / icmake-6 / icmake / rss / spawnerr.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-02-08  |  1.2 KB  |  49 lines

  1. /*
  2. \funcref{spawn\_err}{void spawn\_err (\params)}
  3.     {
  4.         {char}{*progname}{program name}
  5.     }
  6.     {}
  7.     {error()}
  8.     {}
  9.     {spawnerr.c}
  10.     {
  11.  
  12.         This function can be called when an {\em exec()} or {\em spawn()} call
  13.         indicates failure (by returning -1). Argument {\em progname} should
  14.         indicate the program which should have been executed.
  15.  
  16.         An appropriate error message is printed and the program is halted.
  17.  
  18.     }
  19. */
  20.  
  21. #include "icrssdef.h"
  22. #include "../icm.h"
  23. #include <errno.h>
  24.  
  25. void spawn_err (progname)
  26. char *progname;
  27. {
  28.     static char
  29.         errmsg [] = "Can't exec %s: %s";
  30.  
  31.     switch (errno)
  32.     {
  33.         case E2BIG:
  34.             error (errmsg, progname, "command line too big");
  35.         case EACCES:
  36.             error (errmsg, progname, "access denied");
  37.         case EMFILE:
  38.             error (errmsg, progname, "too many open files");
  39.         case ENOENT:
  40.             error (errmsg, progname, "no such file");
  41.         case ENOEXEC:
  42.             error (errmsg, progname, "exec file format");
  43.         case ENOMEM:
  44.             error (errmsg, progname, "out of memory");
  45.         default:
  46.             error (errmsg, progname, "unknown error");
  47.     }
  48. }
  49.